Skip to content

fix(types): resolve request declaration errors - #19495

Open
dvd233 wants to merge 1 commit into
NervJS:mainfrom
dvd233:fix/request-network-typings
Open

fix(types): resolve request declaration errors#19495
dvd233 wants to merge 1 commit into
NervJS:mainfrom
dvd233:fix/request-network-typings

Conversation

@dvd233

@dvd233 dvd233 commented Sep 1, 2026

Copy link
Copy Markdown

这个 PR 做了什么? (简要描述所做更改)

Fixes #18565.

packages/taro/types/api/network/request.d.ts 在严格类型检查下存在 5 个声明错误:

  • Chain 两处引用未声明的 RequestParams
  • OptionRequestTaskTaroStatic.request 的外层泛型未受约束,却被传给受约束的内部泛型,产生 3 个 TS2344

本 PR:

  • 恢复类型文件迁移时丢失的 RequestParams<T>,继续继承 request.Option<T, any> 并允许拦截器附加自定义字段;
  • Option<T, U>SuccessCallbackResult<T> 对齐现有公开签名 Taro.request<T = any, U = any>,移除造成声明自相矛盾的内部约束;
  • 保留 data: U、HTTP method 等字段级类型校验,不改变运行时代码。

选择对齐现有无约束公开泛型,而不是向外传播约束,可以避免对已有自定义响应/请求类型造成 breaking change。

验证

  • 隔离严格声明 A-B 编译:origin/main 复现 5 errors,当前分支 0 errors;
  • 消费端类型 fixture:验证显式响应/请求泛型、拦截器自定义参数、primitive 响应类型,并用 @ts-expect-error 确认错误 request data 与 method 仍被拒绝;
  • corepack pnpm exec prettier --check packages/taro/types/api/network/request.d.ts
  • corepack pnpm lint
  • corepack pnpm --filter @tarojs/api test:ci(2 suites / 7 tests);
  • corepack pnpm pack,确认发布包包含修复后的声明。

这个 PR 是什么类型? (至少选择一个)

  • 错误修复 (Bugfix) issue: fix Network部分的类型错误 #18565
  • 新功能 (Feature)
  • 代码重构 (Refactor)
  • TypeScript 类型定义修改 (Types)
  • 文档修改 (Docs)
  • 代码风格更新 (Code style update)
  • 构建优化 (Chore)
  • 其他,请描述 (Other, please describe):

这个 PR 涉及以下平台:

  • 所有平台
  • Web 端(H5)
  • 移动端(React-Native)
  • 鸿蒙(Harmony)
  • 鸿蒙容器(Harmony Hybrid)
  • ASCF 元服务
  • 快应用(QuickApp)
  • 所有小程序
  • 微信小程序
  • 企业微信小程序
  • 京东小程序
  • 百度小程序
  • 支付宝小程序
  • 支付宝 IOT 小程序
  • 钉钉小程序
  • QQ 小程序
  • 飞书小程序
  • 快手小程序
  • 头条小程序

Summary by CodeRabbit

  • 改进
    • 放宽网络请求参数和成功回调结果的类型限制,支持更多自定义数据类型。
    • 新增通用请求参数类型,允许传入额外的自定义属性。

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: c16f3728-cdcf-4c90-a490-e769f45d3128

📥 Commits

Reviewing files that changed from the base of the PR and between d6d69e3 and 46582cc.

📒 Files selected for processing (1)
  • packages/taro/types/api/network/request.d.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


Walkthrough

本次变更调整网络请求类型声明。request.Optionrequest.SuccessCallbackResult 不再限制泛型类型。新增 RequestParams<T>,支持继承请求选项并添加任意属性。

Changes

网络请求类型

Layer / File(s) Summary
请求与响应类型契约
packages/taro/types/api/network/request.d.ts
放宽 request.OptionU 泛型和 request.SuccessCallbackResultT 泛型约束。新增继承 request.Option<T, any> 且允许任意字符串属性的 RequestParams<T> 接口。

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 46582

This localized type-definition fix restores request API compatibility without changing runtime behavior, networking, permissions, or deployment behavior. No actionable merge-blocking risk remains after normal checks and review.

Poem

小兔看着类型变得宽,
请求参数不再受限难。
响应泛型自由跳,
新接口把额外字段包。
代码检查轻轻过,
月光下萝卜也欢笑。

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 标题明确描述了本次变更的主要内容,即修复请求相关的类型声明错误。
Linked Issues check ✅ Passed 变更满足 issue #18565 的核心目标:恢复 RequestParams,移除 Option<T, U> 和 SuccessCallbackResult 的泛型约束冲突,并修复 request.d.ts 中的类型声明错误。变更范围覆盖所有平台,且未修改运行时代码。
Out of Scope Changes check ✅ Passed 所有变更均位于 packages/taro/types/api/network/request.d.ts,并直接服务于 issue #18565 的网络请求类型修复目标。未发现运行时代码或其他无关范围变更。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Network部分的类型错误

1 participant